簡單來說,當你的測試寫得越多,覆蓋率越高,就可以相信你的專案遇到921大地震也扛的住。
基本使用
使用 it()
或 test()
函式,並在參數中放入該測試的名稱和程式碼。簡單的測試大概就像這樣,其實就很像在講英文一樣,只是中間多了很多符號而已 。
describe('Test', () => {
test('true is true', () => {
expect(true).toBe(true);
});
});
常用語法 可以參考 Jest
判斷是否相同
判斷布林與存在
const mock = jest.fn()
console.log(mock()) // 回傳 undefined
mock.mockReturnValue(42); // 回傳 42
mock.mockReturnValueOnce(10).mockReturnValueOnce('x').mockReturnValue(true);
console.log(mock(), mock(), mock()) // 10 ,x ,true
Mocking Modules
jest.mock() → 模擬模組,例如可以拿來模擬axios框架
用法 : jest.mock(moduleName 模組名稱 , factory 要執行的程式, options 其他設定)
, 其中 factory 跟 options 是 optional 的
import axios from 'axios';
import Users from './users';
// mock axios 模組
jest.mock('axios');
test('should fetch users', () => {
const users = [{name: 'Dylan'}];
const response = {data: users};
// 設定get時要回傳的值
axios.get.mockResolvedValue(response );
return Users.all().then(data => expect(data).toEqual(users));
});
感覺還有很多東西沒有提到,沒提到的之後寫測試時就邊寫邊補充吧 !